1. Field of the Invention
The invention relates to software that permits a user of a device to generate new device operational sequences or alter existing operations without reprogramming the executable software code of the device.
2. Background of the Invention
Devices such as blood component separation devices and cell processing systems have embedded or disk based software that directs the function of the device. Typically the user has a limited number of choices for selecting the operations that the device will run. Such selections can be made by executing the device""s software program and changing the execution constraints by means of a keyboard, touchpad, dials, or buttons. However, if new functionality is desired that has not previously been implemented, then the device""s software program must be modified to accommodate the desired affect. This may be a difficult or impossible task if the user of the device has no facility with or training in software development.
Accordingly, there are constraints on the number and kind of operations that the device can execute, and a corresponding lack of flexibility in the use of the device. For example, optimization of an existing operation or adoption of a new operations is not possible with such devices. Any changes to the protocol executed by the device requires programming new executable software code, compiling such code, and loading the executable code on the device.
One approach to these problems was described by Chan in U.S. Pat. No. 5,865,718. The Chan patent describes a protocol record database that can be used in conjunction with operating a centrifuge. Each protocol record includes information relevant to the centrifugation of a certain specimen. Thus users of the centrifuge can search the database for a protocol on the basis of the specimen and/or the type of separation desired, thereby avoiding lengthy searches in the scientific literature for centrifugation conditions (time, temperature, speed) appropriate to a particular specimen. The Chan patent also provides for storage of new protocol records, but does not account for any functions other than control of centrifuge operations as a function of the specimen type to be centrifuged. Thus the approach provided by Chan is insufficiently flexible to account for control of more complex devices such as blood component separation devices and cell processing systems that have multiple systems for processing samples (including incubation, agitation, expression and centrifugation), and where fluids other than a sample are added and withdrawn as needed (e.g., buffers, reagents, and enzymes).
Thus there is a need for a means to control a device having multiple functions through executable software code without manually reprogramming the device. There is also a need for a means to generate new and/or altered operational sequences or protocols that can control the functioning of a device having multiple functions without manually reprogramming the device.
The invention provides a flexible protocol generator that allows a user to direct the software that controls the functioning of a device and all of its components without reprogramming the executable software code of the device. The invention provides methods for a user to interactively create a storable sequence of one or more steps of a protocol that directs the functioning of a device, to transfer the protocol file to the device, and to execute the protocol via the software that is embedded or stored on that device.
According to one aspect of the invention, methods for generating a protocol for controlling operation of a device are provided. The methods include selecting one or more functions in the operation of the device, ordering the sequence of the selected functions, selecting a value for variables of each of the selected functions, and recording the selected ordered functions and the values to generate a protocol definition file readable by an executable software program to control the device to run the selected functions with the selected values for variables of the functions. In certain embodiments, the methods also include recording the protocol definition file on a computer-readable medium. Preferably, the device controlled by the protocol generator in conjunction with the executable software is a cell processing device or blood processing device.
In other embodiments, the functions are selected from a predetermined group of functions and selectable parameters for a defined protocol. Preferably, the group of functions includes one or more functions selected from among centrifugation, expression, incubation, agitation, addition of a sample, processing chemical or fluid, priming of fluid lines, and purging of fluid lines, although other device functions can likewise be controlled. Preferred variables include the time of a function, the temperature of an operating portion of the device, the speed of a function, the volume of addition, and the ratio of mixture of a sample, processing chemical or fluid. Other variables will be known to one of ordinary skill in the art.
In still other embodiments of the methods, the executable software program coordinately controls hardware of the device to control the functions. Preferably the hardware comprises one or more electrical, mechanical or electromechanical devices, particularly motors, pumps, valves, detectors, and solenoids.
According to another aspect of the invention, methods for controlling the operation of a device are provided. The methods include selecting one or more functions in the operation of the device, ordering the sequence of the selected functions, selecting a value for variables of each of the selected functions, recording the selected ordered functions and the values to generate a protocol definition file readable by an executable software program, and executing the executable software program to control the operation of the device. In certain embodiments, the methods include transferring the protocol definition file to the device, particularly by data line transfer or by encoding the protocol definition file on a computer-readable medium, and reading the protocol definition file from the computer-readable medium. Computer-readable media include magnetic disks, magnetic tapes, and optical disks. Preferably the device is a cell processing device.
The protocol definition file then is read from the computer-readable medium by the executable software program. Preferably the executable software program resides or becomes resident in memory of the device and is executed by a central processing unit of the device.
The invention in other aspects provides computer readable media encoded with a program that, when executed on a computer system, performs the foregoing methods.
According to yet another aspect of the invention, apparatuses for generating a protocol for controlling operation of a device are provided. The apparatuses include means for selecting one or more functions in the operation of the device, means for ordering the sequence of the selected functions, means for selecting a value for variables of each of the selected functions, and means for recording the selected ordered functions and the values to generate a protocol definition file readable by an executable software program to control the device to run the selected functions with the selected values for variables of the functions.
Other apparatuses of the invention are apparatuses for controlling the operation of a device, which include means for selecting one or more functions in the operation of the device, means for ordering the sequence of the selected functions, means for selecting a value for variables of each of the selected functions, means for recording the selected ordered functions and the values to generate a protocol definition file readable by an executable software program, and means for executing the executable software program to control the operation of the device.
Another apparatus for generating a protocol for controlling operation of a device, includes a computer-based user interface for selecting one or more functions in the operation of the device, a computer-based user interface for ordering the sequence of the selected functions, a computer-based user interface for selecting a value for variables of each of the selected functions, a computer readable medium for recording the selected ordered functions and the values and an executable software program that generates a protocol definition file readable by an executable software program to control the device to run the selected functions with the selected values for variables of the functions.
Yet another apparatus for controlling the operation of a device includes a computer-based user interface for selecting one or more functions in the operation of the device, a computer-based user interface for ordering the sequence of the selected functions, a computer-based user interface for selecting a value for variables of each of the selected functions, a computer readable medium for recording the selected ordered functions and the values, a first executable software program that generates a protocol definition file readable by an executable software program, and a second executable software program for executing the protocol definition file to control the operation of the device. In preferred embodiments, the first executable software program and the second executable software program are connected by a data link, or the second executable software program resides or becomes resident in a computer memory of the device.
Also provided according to the invention are data structures including a group of programs or files used in the foregoing methods.
In another aspect of the invention, methods for automatically recording run parameters of a device are provided. The methods include selecting a set of run parameters of the device generated by sensors monitoring the functions of the device, sampling at predetermined time intervals the run parameters of the device, and recording on a computer-readable medium at the predetermined time intervals the run parameters. In certain embodiments, the methods also include outputting a report of the actual run parameters. In other embodiments, the methods also include comparing the actual run parameters generated by the sensors with the selected run parameters, optionally outputting a report of the actual and selected run parameters.